package cog.support.alibaba.zookeeper.zkclient;

public class ZkclientZookeeperClient{
//        extends AbstractZookeeperClient<IZkChildListener> {
//
//	private final ZkClient client;
//
//	private volatile KeeperState state = KeeperState.SyncConnected;
//
//	public ZkclientZookeeperClient(String url) {
//		super(url);
//		client = new ZkClient(url);
//		client.subscribeStateChanges(new IZkStateListener() {
//			public void handleStateChanged(KeeperState state) throws Exception {
//				ZkclientZookeeperClient.this.state = state;
//				if (state == KeeperState.Disconnected) {
//					stateChanged(StateListener.DISCONNECTED);
//				} else if (state == KeeperState.SyncConnected) {
//					stateChanged(StateListener.CONNECTED);
//				}
//			}
//			public void handleNewSession() throws Exception {
//				stateChanged(StateListener.RECONNECTED);
//			}
//
//			@Override
//			public void handleSessionEstablishmentError(Throwable error) throws Exception {
//				logger.info("subscribe error :{}",error);
//			}
//		});
//	}
//
//	public void createPersistent(String path) {
//		try {
//			client.createPersistent(path, true);
//		} catch (ZkNodeExistsException e) {
//		}
//	}
//
//	public void createEphemeral(String path) {
//		try {
//			client.createEphemeral(path);
//		} catch (ZkNodeExistsException e) {
//		}
//	}
//
//	public String createEphemeralSequential(String path) {
//		try {
//			return client.create(path, null, CreateMode.EPHEMERAL_SEQUENTIAL);
//		} catch (ZkNodeExistsException e) {
//		}
//		return null;
//	}
//
//	public void delete(String path) {
//		try {
//			client.delete(path);
//		} catch (ZkNoNodeException e) {
//		}
//	}
//
//	public List<String> getChildren(String path) {
//		try {
//			return client.getChildren(path);
//        } catch (ZkNoNodeException e) {
//            return null;
//        }
//	}
//
//	public boolean isConnected() {
//		return state == KeeperState.SyncConnected;
//	}
//
//	public void doClose() {
//		client.close();
//	}
//
//	public IZkChildListener createTargetChildListener(String path, final ChildListener listener) {
//		return new IZkChildListener() {
//			public void handleChildChange(String parentPath, List<String> currentChilds)
//					throws Exception {
//				listener.childChanged(parentPath, currentChilds);
//			}
//		};
//	}
//
//	public List<String> addTargetChildListener(String path, final IZkChildListener listener) {
//		return client.subscribeChildChanges(path, listener);
//	}
//
//	public void removeTargetChildListener(String path, IZkChildListener listener) {
//		client.unsubscribeChildChanges(path,  listener);
//	}

}
